import request from './axios'

/**
 * 用户注册接口
 * @param {Object} params 注册参数
 * @param {string} params.username 用户名（唯一）
 * @param {string} params.password 密码（明文）
 * @param {string} params.nickname 昵称
 * @param {string} params.phone 手机号（唯一）
 * @param {string} [params.email] 邮箱（可选）
 * @returns {Promise}
 */
export const apiRegister = (params) => {
  return request.post('/api/users/register', params)
}

/**
 * 用户登录接口
 * @param {Object} params 登录参数
 * @param {string} params.username 用户名
 * @param {string} params.password 密码（明文）
 * @returns {Promise<string>} 登录成功返回userId
 */
export const apiLogin = (params) => {
  return request.post('/api/users/login', params)
}

/**
 * 获取用户信息接口
 * @param {string} userId MongoDB用户ID
 * @returns {Promise<Object>} 用户详细信息（过滤敏感字段）
 */
export const apiGetUserInfo = (userId) => {
  return request.get(`/api/users/${userId}`)
}

/**
 * 获取用户积分明细接口
 * @param {string} userId MongoDB用户ID
 * @returns {Promise<Array>} 积分变动记录数组
 */
export const apiGetPointDetails = (userId) => {
  return request.get(`/api/users/${userId}/point-details`)
}

/**
 * 积分签到接口（每日一次）
 * @param {string} userId MongoDB用户ID
 * @param {number} rewardPoints 签到奖励积分值
 * @returns {Promise<number>} 最新积分总额
 */
export const apiSignInReward = (userId, rewardPoints) => {
  return request.post(`/api/users/${userId}/points/reward`, { rewardPoints })
}